import java.text.DecimalFormat;

public class Calculadora {
    private String operacao;
    private double totalParcial;
    private double total;
    public static final String ADICAO = "+";
    public static final String SUBTRACAO = "-";
    public static final String MULTIPLICACAO = "*";
    public static final String DIVISAO = "/";
    public static final String IGUALDADE = "=";

    public Calculadora() {
        operacao = "";
        totalParcial = 0;
        total = 0;
    }
    
    public void calcular(double valor, String operacao) {
        totalParcial = valor;
        if(this.operacao.isEmpty()) {
            total = valor;
        } else {
            switch(this.operacao) {
            case Calculadora.ADICAO:
                somar(valor);
                break;
            case Calculadora.SUBTRACAO:
                subtrair(valor);
                break;
            case Calculadora.MULTIPLICACAO:
                multiplicar(valor);
                break;
            case Calculadora.DIVISAO:
                dividir(valor);
                break;
            }
        }
        this.operacao = operacao;
    }
    
    public void somar(double valor) {
        total += valor;
    }
    public void subtrair(double valor) {
        total -= valor;
    }
    public void multiplicar(double valor) {
        total *= valor;
    }
    public void dividir(double valor) {
        total /= valor;
    }

    public String getOperacao() {
        return operacao;
    }

    public void setOperacao(String operacao) {
        this.operacao = operacao;
    }

    public double getTotalParcial() {
        return totalParcial;
    }

    public void setTotalParcial(double totalParcial) {
        this.totalParcial = totalParcial;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }
    
    public String obterTotalFormatado() {
        DecimalFormat df = new DecimalFormat("#.##########");
        return df.format(total);
    }
    
}
